Blender Geometry Nodes Part 2
hr.icon
1. はじめに
以下のチュートリアル映像をベースに解説する。
https://www.youtube.com/watch?v=V10GBrmYIDM
hr.icon
2. Part 1の続きから
https://gyazo.com/5a2751a28924d8b4146ccc44ddba2778
hr.icon
3. Exposing Parameters(パラメータの取り出し)
ここでは、頻繁に変更するノードの値を、外部から操作しやすくする方法を紹介する。
Distribute Points on FacesノードのDensityソケットをドラック&ドロップで、Group Inputの空の出力ソケットに接続する。
https://gyazo.com/db5d3edd07a7376b9d6c26d0c24cd8cb
元のDensity値の表示が消えて、Modifier Stackの中にDensity値が追加された。
Modifier Stackは他のワークスペースでも表示されていて、頻繁に変更する場合に使いやすい。また、アニメーション設定することもできる。
https://gyazo.com/fe3bcb17b55f05a41660c048194f7eeb
パラメータの取り出し(正式な言い方不明、Exposing ParametersやExposing Value)の数に制限はない。
下図のようにRandom ValueノードのMinとMaxも追加する。
https://gyazo.com/ea3ab15921437555510a91b145757250
Sidebar(Nキー)を表示して、GroupタブのGroup Socketsでパラメータの名前を変更する。
Density→Sugar Density
Min→Scale Min
Max→Scale Max
https://gyazo.com/272f2d1cad71f87d896994fe96ed8236
hr.icon
4. 2cmサイズにスケール
PrimitiveのCubeは2m x 2m x 2m(NキーでSidebarで確認)のため、制作予定のSugar Coated Candyとしてはサイズが大きい。
https://gyazo.com/317ecabcee149054c0fa5d6710683c69
2cm x 2cm x 2cmにするために、Cubeを選択した上で、S、0.01で1/100サイズにスケールする。
https://gyazo.com/b6f7a07ce4ff08ef2a03dc407e24c77b
インスタンス元のsugar crystalをCubeの近くに移動する。
https://gyazo.com/b316c372e0fa749b986ff02e2e875869
sugar crystalも選択して、S、0.01でスケールする。
https://gyazo.com/d1ff9ac809172a4f76bf863391a6d214
hr.icon
5. パラメータのMultily(乗算)
5.1 CubeとSugar CrystalのApply Scale
Cubeとsugar crystalの両方ともScaleが0.01となっている。
https://gyazo.com/6fa4833d9efa615bb615f60bcf3399db
それぞれにに対してApply(Cmd+A)を行う。
https://gyazo.com/479f46ab2b229c5a31d3aa4419297b95
5.2 Multily Node(Math Node)
以下、わかりにくいので注意
上図では、想定した状態とは異なり、Cube上のsugar crystalのインスタンスはかなり少ない状態となっている。
この理由として、Distribute Points on FacesのPointsは1m x 1m x 1m空間の中に配置されるため、小さいオブジェクトの領域にPointsを増やすためには、以下のよう10000倍程度のDensityを設定する必要がある。
Sugar Density: 2000000
https://gyazo.com/bf5679e90d0b37ea0e0fdc3a868ca66c
2000000程度の数値を調整するのは面倒になるので、Mathノードを利用して、一定倍を設定しておく。
SHIFT+Aで、Utility > Math > Mathノードを下図のように追加する。
機能がAddに設定されているため、Addノードとして追加される。
https://gyazo.com/d8b12e425c5409163032a2bb8d6b72ea
Addは足し算(A+B)なので、乗算のMultiply(A*B)に変更
Sugar Density: 200 ※必ず先に設定する
Multiply NodeのValue: 10000
誤って大きな数値を設定しすぎた場合はBlenderがフリーズするのでBlenderを強制終了する必要がある。
https://gyazo.com/24453cc8f3d21e12db312007bca6b315
hr.icon
6. Node Wrangler
Node Wrangler Addonを利用すると、ノードエディターで効率的に操作できる。
Blenderに標準で搭載されているが、初期設定では無効になっているので、以下の操作で有効にする。
Editメニュー > Preferences
https://gyazo.com/251ff7e01527375dcdcd3fbfe26b5af2
Add-ons > nodeで検索して、Node Wranglerにチェックを入れる。
https://gyazo.com/f0b3dcba71bfca93a0f830d4c3b86fe5
今回使う機能
Nodeを選択(複数可)して、SHIFT+PでFrame設定
hr.icon
7. Frame Node
7.1 通常のFrame Nodeの追加方法
Add > Layout > Frame
特定のNodeをFrameにドラッグ
7.2 SHIF+P(今回の方法)
2つのRandom Valueを選択して、SHIF+Pを押す。
下図ではわかりづらいが、黒のFrameで囲まれる。
https://gyazo.com/27d18675cb6c6932197105d4e30c96ee
7.3 Frame名称
Frameの縁をクリックして選択
Sideバー(Nキー)を表示
Label: Randomize Scale and Rotation
必要に応じてColorにチェック
https://gyazo.com/9002e6f5f538fe3d6949bbfdbb49f9b9
続けて、MultiplyにもFrameを設定する。
Multiplyノードを選択して、SHIFT+P
Label: Multiply density for small scale
https://gyazo.com/e151553209efcc132b17b364bfeca9ec
hr.icon
8. Sugar Coated Candyの造形
8.1 Subdivision Surface
Cubeを選択して、Add Modifier > Generate > Subdivision Surfaceを追加する。
Sugar Densityパラメータを50程度に下げると確認できるが、Geometry Node Modifierの後にSubdivision Surface Modifierの順となっているため、sugar crystalはCube形状に張り付いている。
https://gyazo.com/b79fe3b290d3f197f87a356e45f9f0c2
Modifierの順番を入れ替える。
https://gyazo.com/a5f5806764ac729dbafb4c7d3834d0d7
Subdivision SurfaceのLevels Viewport及びRenderを3に変更する。
https://gyazo.com/1c12b872dde44107bd8294bf909d44ad
8.1 形状の調整
Edit Modeに入る。
必要に応じてパネルサイズは変更する。もしくはLayoutワークスペースで作業する。https://gyazo.com/d25d56ed31736c654374d46f88b165d3
Cmd+Rでループカットモードに入る。
マウスを動かして、水平方向に黄色ラインが表示されたら、左クリックでカット方向を確定させる。
https://gyazo.com/f8c90504936c2747439802c82ad4663f
マウスを下方向に動かして、下図のような形状になったら、左クリックで確定する。
https://gyazo.com/3b97762429a94d4dada84612fa80aad8
上面の頂点4点を選択して、Sキーで小さくする
G、Zで上面を少し下げる
https://gyazo.com/7a2d94b6de0d8b8e102df7eca34c5b88
正面 or 側面ビューに変更
Aキーを押して全ての頂点を選択
G、Zキーを押して、原点(Object Origin)の上にオブジェクトが位置するように調整する
https://gyazo.com/7b0869b93f4cb637e2784b0f18b70310
hr.icon
9. Sugar Crystalの造形
9.1 Bevel
Object Modeでsugar crystalを選択
Add Modifier > Generate > Bevel
https://gyazo.com/d4a42d3ecb6ff9d44174b0f76f8f7802
Sugar Crystalのサイズ(2cm)と比較して、BevelのAmount(量)が0.1m(10cm)だと大きすぎるので、三角錐を合わせたような形状となっている。
https://gyazo.com/76b59b4dc6cb67599521356e858758d1
Amountを0.0002mに変更する。
https://gyazo.com/c49fd5fdf7cd1e2875383f93c79afb56
https://gyazo.com/ca68744114c8ee1e611809a07e452433
Sugar densityを100に設定する。
https://gyazo.com/4cf70881f39bbf2896667c105b2dd9ae
9.2 Sugar Crystalの重なりの調整
現在のままでは、Sugar Crystalが現実ではありえない重なり方をしている。
https://gyazo.com/8c61cfd0f49a22b77a7288d009bc3b96
3D Viewportはオブジェクトを近づけすぎるとクリップされるので、SidebarのViewタブ > Clip Startを0.001m以下に設定する。
https://gyazo.com/f2e0e574f01fad7b70415df782d15c66
Distribute Points on FacesのRandomをPoisson Disk(ポアソンデスク)に変更
Densityの接続が切れるので、MultyplyのValueソケットとDensity Maxを接続する
https://gyazo.com/a8ff68353bfb27b659e18da50cc33d7b
Distance Min: 0.0005mに設定(この数値はsugar crystalのscaleとの関係にも依存する)
CubeにShade Smoothを設定(もっと前に設定してよい、忘れてた)
https://gyazo.com/143651e1b854c5d2f34519e01cf35ff2
hr.icon
10. Material
10.1 BlenderGuru_SugarCoatedCandy.blendのダウンロード
CandyとSugaraのMaterialsはAndrewが作成したBlenderGuru_SugarCoatedCandy.blendを利用する。
https://gyazo.com/0c0956e58ae2d7eec043ecb7268c5fe7
https://gyazo.com/8f0ecf986d03c7118e93a9a198d76996
10.2 Materialの読み込み
Appendから他の.blendファイルにあるデータを読み込み、複製することができる。
File > AppendからBlenderGuru_SugarCoatedCandy.blendを読み込む。
https://gyazo.com/60d3e3b26cc92595e58b6c216864d539
下図のようにBlenderGuru_SugarCoatedCandy.blendの中身が表示される。
https://gyazo.com/6a97f19f7d9b142c7fd49de94c83a7e9
Materialフォルダをダブルクリックして、CandyとSufar Crystalの2つを選択してAppendする。
https://gyazo.com/4412fbbcaecd8b441ec00811d49e0274
Material Propertiesを開いて、CandyとSugar Crystalが読み込まれていることを確認する。
https://gyazo.com/45ca28fc344fa84ee246d7785c7b2cf0
10.3 Materialの割り当て
Cubeオブジェクトを選択して、Candyマテリアルを割り当てる。
https://gyazo.com/4f12d627bd7373c5a5ba5bd26f315dfb
sugar cryatlオブジェクトを選択して、Sugar Crystalマテリアルを割り当てる。
https://gyazo.com/5fa3f5635a559ee6c546a9c5f499e320
hr.icon
11. Lighting
11.1 Planeの作成
Add > Mesh > Planeを作成する。
https://gyazo.com/91bef0bf572768ba3816d2c5be69943c
11.2 ライトの調整
Lightを選択して、Alt+G(原点へ移動)してから、下図程度の位置に移動する。
https://gyazo.com/27378a2a143a9a8a1fcb3af9a7928b56
Power: 10Wに変更(ライトの位置に依存する)
https://gyazo.com/c1d4731e86bb0465365ddf0c79492d7a
Viewport Shading: Rendered
Render Engine: Cycles
Device: CPUのまま(GPU搭載PCはGPU Computeに変更)
PC環境によりプレビューに時間を要する可能性がある。講師PCMac Book Air M1 2020での作業では問題無いレベル。
https://gyazo.com/2f591caf39aa441da8d5acaa9bf2a478
インスタンス元のsugar crystalは、Outlinerで非表示と非レンダリングに設定しておく。
https://gyazo.com/310dbaca4f5adca0458d0008d40679ff
下図のように、近づいた上でLightのPowerを調整する。あまり明るすぎてもディティールが下がるのでCandy内部が若干暗い程度にする。
https://gyazo.com/f28ce98f8a3dfc1e0bb468413b12b19c
YouTubeでは、CyclesのLight Pathsの設定を変更することで、Candyの透過画質が向上しているが、講師PC環境では影響は見られなかった。GPUに依存するのか原因不明。
Light Pathsが初期設定のまま。
https://gyazo.com/4d4d80a04b7aa78757e544ea734a0254
Light PathsのTransparentとTotalを100に変更。
https://gyazo.com/f75e203d5eed28e92ee99fd885b3038d
hr.icon
12. カメラの設定とレンダリング
12.1 カメラの設定
3D Viewportである程度の構図を決めて、Align View > Align Active Camera to Viewを行う。
下図のように、そのままではカメラのClip Startが0.1なので近すぎて表示されない。
※3D ViewportのClipとレンダリングカメラのClipの設定値は異なる
https://gyazo.com/91880b475b255d03cbacc601e46744e4
Clip Startを0.01以下程度にすれば表示される。
https://gyazo.com/4bae3ef8046c3827f6bd7fbdc46c9260
12.2 レンダリング
Renderメニュー > Render Imageでレンダリングする。
下図は、Mac Book Air M1 2020環境で4分程度経過した状態。Remainingに2時間と表記されているので、Cyclesの設定を変更するか、このレベルのレンダリングを行うためにはGPU搭載のPCを準備する必要がある。
https://gyazo.com/ec8841f1b8c49b63ad8545e38e3eec32